package com.huajin.codetest.mail;

import org.springframework.beans.factory.support.DefaultListableBeanFactory;
import org.springframework.stereotype.Component;

import com.huajin.codetest.context.ServerContext;

@Component
public class MailConfigTest {
	
	public void autoMailConfig(String appName, String host, String username, String password) {
		String beanName = appName + "MailConfig";
		MailConfig mailConfig = null;
		if (ServerContext.containsBean(beanName)) {
			mailConfig = ServerContext.getBean(beanName, MailConfig.class);
		} else {
			DefaultListableBeanFactory beanFactory = (DefaultListableBeanFactory) ServerContext.getApplicationContext().getAutowireCapableBeanFactory();
			mailConfig = new MailConfig().setHost(host).setUsername(username).setPassword(password);
			beanFactory.registerSingleton(beanName,  mailConfig);
//			GenericBeanDefinition beanDefinition = new GenericBeanDefinition();
//	        beanDefinition.setBeanClass(MailConfig.class);
//	        ConstructorArgumentValues constructorArgumentValues = new ConstructorArgumentValues();
//	        constructorArgumentValues.addIndexedArgumentValue(0, appName);
//	        constructorArgumentValues.addIndexedArgumentValue(1, host);
//	        constructorArgumentValues.addIndexedArgumentValue(2, username);
//	        beanDefinition.setConstructorArgumentValues(constructorArgumentValues);
//	        beanFactory.registerBeanDefinition(appName, beanDefinition);
		}
		System.out.println(ServerContext.isSingleton(beanName));
	}
	
} 
